Data transfer in memory card system

ABSTRACT

A memory card system includes a host that issues a read command and a memory card that upon receiving the read command sends read data to the host in synchronism with a read clock signal generated within the memory card. In addition, the memory card sends the read clock signal to the host, and the host receives the read data in synchronism with the read clock signal, for increasing the allowable setup time period at the host.

CROSS-REFERENCE TO RELATED APPLICATION(S)

The present application claims priority under 35 U.S.C. §119 to Korean Patent Application No. 2006-74291, filed on Aug. 7, 2006, which is incorporated herein by reference in its entirety.

TECHNICAL FIELD

The present invention relates generally to memory card systems, and more particularly, to increasing allowable setup time at a host by transferring read data from a memory card to a host along with a read clock signal generated at the memory card.

BACKGROUND OF THE INVENTION

FIG. 1 shows an example memory card system 100 of the prior art, including a memory card 102 and a host 104. The host 104 may be a portable electronic device such as a mobile phone, a MP3 player, or a PMP (portable media player). The memory card 102 may be a flash memory card as one example. The host 104 includes a host controller 106 and a host connection unit 108. The card 102 includes a card connection unit 110, a card controller 112, and a memory unit 114.

For writing data from the host 104 to the memory card 102, the host 104 sends a write command (WR_CMD), a clock signal CLK, and data to be written to the memory card 102 through the host connection unit 108. The memory card 102 receives the write command, the clock signal CLK, and the data through the card connection unit 110.

The card connection unit 110 receives the data from the host 104 in synchronism with the clock signal CLK from the host. The card controller 112 responds to the received write command by writing the received data into the memory unit 114 in synchronism with an internal clock signal generated by a clock signal generator within the card controller 112.

For reading of data from the memory card 102 by the host 104, the host 104 sends a read command (RD_CMD) and the clock signal CLK to the memory card 102 through the host connection unit 108. The memory card 102 receives the read command and the clock signal CLK through the card connection unit 110.

In the conventional memory card system 100, the host 104 generates and sends the clock signal CLK to be used by the memory card 110 for the write and read operations. Referring to the memory card system 100 in FIG. 2, the host 104 includes a host clock generator 116 for generating such a clock signal CLK.

Further referring to FIG. 2, the host 104 includes a host I/O (input/output) circuit 118 having a plurality of data flip flops HF1, HF2, . . . , and HFn that are clocked with the clock signal CLK from the host clock generator 116. The memory card 102 includes a card I/O (input/output) circuit 120 having a plurality of data flip flops CF1, CF2, . . . , and CFn that are also clocked with the clock signal CLK from the host clock generator 116. A card internal circuit 122 illustrated in FIG. 2 includes the card controller 112 and the memory unit 114 of FIG. 1.

FIG. 3 shows a flowchart of steps when the host 104 reads data from the memory card 102. FIG. 4 shows a timing diagram of signals when the host 104 reads data from the memory card 102.

Referring to FIGS. 2 and 3, the host generates and sends the read command (RD_CMD) and the clock signal CLK to the memory card 102 through the host connection unit 108 (step S1132 of FIG. 3). The memory card 102 upon receiving the read command through the card connection unit 110 reads data from the memory unit 114 in synchronism with an internal clock signal generated within the card controller 112 (step S134 of FIG. 3).

The memory card 102 then transfers the read data back to the host 104 in synchronism with the clock signal CLK from the host 104 (step S1136 of FIG. 3). In that case, the flip flops CF1, CF2, . . . , and CFn of the card I/O circuit 120 are clocked with the clock signal CLK from the host 104 for latching out such read data from the memory unit 114.

The host 104 receives and transfers such read data to the host controller 106 in synchronism to the clock signal CLK generated by the clock signal generator 116 at the host 104 (step S138 of FIG. 3). In that case, the flip flops HF1, HF2, . . . , and HFn of the host I/O circuit 118 are clocked with the clock signal CLK generated by the clock signal generator 116 at the host 104.

FIG. 4 shows a timing diagram of signals for the read operation within the memory card system 100 of FIG. 4. FIG. 4 shows the original CLK signal S10 generated by the clock signal generator 116 at the host 104. FIG. 4 also shows the transmitted CLK signal S20 received at the memory card 102 which is time delayed by time period t1 from the original CLK signal S10.

Additionally referring to FIG. 4, data S30 is output from the card I/O circuit 120 at a time delay t2 from the transmitted CLK signal S20 received at the memory card 102. The time delay t2 is a portion of the time period required for the memory controller 112 to retrieve the read data S30 from the memory 114 with respect to the received CLK signal S20 after receiving the read command. The total time delay t I+t2=t3 is also termed an output delay.

For example, the first data D0 begins to be generated at time point tp1 by the card controller 112 after the read command has been received by the controller 112 at a prior time. For example, the read command may have been received at the C0 transition of the CLK signal S20 received at the card 102. Thus, the data S30 is invalid (shown as shaded in FIG. 4) before the time point tp1.

Further referring to FIG. 4, data S40 is received at the host 104 with a bus delay t4 which is the time period required for transferring the data from the card 102 to the host 104. Once the data S40 arrives at the host connection unit 108, the host I/O circuit 118 has a maximum allowable setup time period t5 for transferring such data S40 to the host controller 106. The maximum allowable setup time period t5 is from the end of the time period t4 until the subsequent transition of the original clock signal CLK at the host 104 when the flip flops HF1, HF2, . . . , and HFn of the host I/O circuit 118 are controlled to latch the received data S40.

Thus, in the prior art, the maximum allowable setup time period t5 is limited by the output delay t3 and the bus delay t4. However, such allowable setup time period t5 may limit high frequency operation of the memory card system 100. Thus, a mechanism is desired for increasing the allowable setup time period t5 for faster speed performance of the memory card system.

SUMMARY OF THE INVENTION

Accordingly, in a general aspect of the present invention, the memory card generates and transmits a read clock signal when sending read data to the host for increasing the allowable setup time period at the host.

A memory card system according to a general aspect of the present invention includes a host that issues a read command and a memory card that upon receiving the read command sends read data to the host in synchronism with a read clock signal generated within the memory card. In addition, the memory card sends the read clock signal to the host, and the host receives the read data in synchronism with the received read clock signal.

In one embodiment of the present invention, the host includes at least one flip flop that latches in the read data from the memory card clocked with the read clock signal from the memory card.

In another embodiment of the present invention, the memory card includes at least one flip flop that latches out the read data to the host clocked with the read clock signal.

In an example embodiment of the present invention, the host includes a host data processor and a host memory device having sequences of instructions stored thereon. In that case, execution of the sequences of instructions by the host data processor causes the host data processor to perform the step of sending the read command to the memory card.

In another embodiment of the present invention, the memory card includes a read clock signal generator that is controlled to generate the read clock signal when the memory card receives the read command.

In another example embodiment of the present invention, the memory card includes a card data processor and a card memory device having sequences of instructions stored thereon. In that case, execution of the sequences of instructions by the card data processor causes the card data processor upon receiving the read command to perform the steps of:

reading the read data from a memory unit of the memory card in synchronism with an internal clock signal of the memory card;

controlling the read clock generator to generate the read clock signal to be sent to the host; and

sending the read data and the read clock signal to the host.

In another aspect of the present invention, an allowable setup time for receiving the read data at the host is determined by a phase relationship between the read data and the read clock signal received at the host.

In a further embodiment of the present invention, the memory card includes a memory unit that receives another read command issued from a card controller of the memory card. In that case, the memory unit upon receiving the other read command provides the read data to the card controller in synchronism with another read clock signal generated within the memory unit. For example, the memory unit includes another read clock signal generator that is controlled to generate the other read clock signal when the memory unit receives the other read command. The memory unit is a flash memory in an example embodiment of the present invention.

In another embodiment of the present invention, the host transfers a write command, write data, and a write clock signal to the memory card. In that case, the memory card receives the write data in synchronism with the write clock signal.

In this manner, the read data and the read clock signal sent from the memory card arrive at the host with a substantially same time delay. In that case, the allowable setup time for receiving the read data at the host is determined by the phase relationship between the read data and the read clock signal received at the host. Thus, an output delay from the memory card is eliminated for increasing the allowable setup time at the host.

These and other features and advantages of the present invention will be better understood by considering the following detailed description of the invention which is presented with the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a block diagram of a memory card system, according to the prior art;

FIG. 2 shows the memory card system of FIG. 1 with I/O circuits clocked in a host and memory card, according to the prior art;

FIG. 3 shows a flow-chart of steps for a read operation in the memory card system of FIG. 2, according to the prior art;

FIG. 4 shows a timing diagram of signals during a read operation in the memory card system of FIG. 2, according to the prior art;

FIG. 5 shows a block diagram of a memory card system having a memory card generating a read clock signal, according to an embodiment of the present invention;

FIG. 6 shows a flow-chart of steps during a read operation within the memory card system of FIG. 5, according to an embodiment of the present invention;

FIG. 7 shows a timing diagram of signals during a read operation within the memory card system of FIG. 5, according to an embodiment of the present invention;

FIG. 8 shows a flow-chart of steps during a write operation within the memory card system of FIG. 5, according to an embodiment of the present invention;

FIG. 9 shows a block diagram of a memory card system having a card controller and a memory unit with respective read clock signal generators, according to another embodiment of the present invention;

FIG. 10 illustrates a block diagram of an example host controller in the memory card system of FIG. 5, according to an embodiment of the present invention; and

FIG. 11 illustrates a block diagram of an example card controller in the memory card system of FIG. 5, according to an embodiment of the present invention.

The figures referred to herein are drawn for clarity of illustration and are not necessarily drawn to scale. Elements having the same reference number in FIGS. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, and 11 refer to elements having similar structure and/or function.

DETAILED DESCRIPTION

FIG. 5 shows a block diagram of a memory card system 200 having increased allowable setup time according to an embodiment of the present invention. The memory card system 200 includes a host 202 and a memory card 204.

The host 202 may be a portable electronic device such as a mobile phone, a MP3 player, or a PMP (portable media player), for example. The memory card 204 may be a smart card, a SIM (subscriber identification module) card, or a flash memory card, for example. The present invention may be practiced when the memory card 204 is any type of electronic card having read data accessed by the host 202 that is any electronic device having a coupling with such a memory card 204.

The host 202 includes a host controller 206, a host I/O circuit 208, a host connection unit 210, and a write clock signal generator 223. The host I/O circuit 208 includes a plurality of n data flip flops HF1, HF2, . . . , and HFn for latching data to/from the memory card 204. FIG. 10 shows an example embodiment of the host controller 206 including a host data processor 412 and a host memory device 414 having sequences of instructions (i.e., software) stored thereon. Execution of such sequences of instructions by the host data processor 412 causes the host data processor 412 to perform any function/process/step as described herein as being performed by the host controller 206.

The memory card 204 includes a card internal circuit comprised of a card controller 214 and a memory unit 216. The memory card 204 also includes a card I/O circuit 218, a card connection unit 220, and a read clock generator 222. The card I/O circuit 218 includes a plurality of n data flip flops CF1, CF2, . . . , and CFn for latching data to/from the host 202.

FIG. 11 shows an example embodiment of the card controller 214 including a card data processor 422 and a card memory device 424 having sequences of instructions (i.e., software) stored thereon. Execution of such sequences of instructions by the card data processor 422 causes the card data processor 412 to perform any function/process/step as described herein as being performed by the card controller 214.

FIG. 6 shows a flow-chart of steps during a read operation of the memory card system 200 of FIG. 5, in an example embodiment of the present invention. Referring to FIGS. 5 and 6, the host controller 206 generates a read command RD_CMD sent to the memory card 204 through the host connection unit 210 (step S232 of FIG. 6).

The card controller 214 upon receiving the read command RD_CMD reads data from the memory unit 216 in synchronism with an internal clock signal generated within the card controller 214 (step S234 of FIG. 6). In addition, the card controller 214 upon receiving the read command RD_CMD controls the read clock generator 222 to generate a read clock signal RD_CLK (step S236 of FIG. 6).

Subsequently, the memory card 204 transfers the read data generated by the card controller 214 from the memory unit 216 to the host 202 in synchronism with the read clock signal RD_CLK from the read clock generator 222 (step S238 of FIG. 6). To that end, the data flip flops CF1, CF2, and CFn in the card I/O circuit 218 are clocked with the read clock signal RD_CLK from the read clock generator 222 for latching such read data to the host 202 through the card connection unit 220.

In addition, the memory card 204 also transfers the read clock signal RD_CLK from the read clock generator 222 to the host 202 through the card connection unit 220 (step S238 of FIG. 6). The host 202 receives the read data and the read clock signal RD_CLK through the host connection unit 210 (step S240 of FIG. 6). The host I/O circuit 208 transfers such read data to the host controller 206 in synchronism with the received RD_CLK signal (step S240 of FIG. 6).

To that end, the data flip flops HF1, HF2, . . . , and HFn in the host I/O circuit 208 are clocked with the read clock signal RD_CLK received from the memory card 204 for latching such read data to the host controller 206 from the host connection unit 210. FIG. 7 illustrates a timing diagram of the read clock signal RD_CLK S50 and the read data S60 received at the host connection unit 210.

Referring to FIG. 7, the read clock signal RD_CLK S50 and the read data S60 are received at the host connection unit 210 with a transfer delay t6 between such signals S50 and S60. Such a transfer delay t6 may arise from the different signal paths for such signals S50 and S60. For example, the data path for the read data S60 may have a pad associated with a higher delay than the pad for the read clock signal RD_CLK S50. Alternatively, the data path for the read data S60 may be longer with higher time delay than the data path for the read clock signal RD_CLK S50.

In any case, a maximum allowable setup time t7 for the host I/O circuit 208 to transfer the read data S60 to the host controller 206 is from the end of the time delay t6 to the subsequent transition (i.e., Cl in FIG. 7) of the received read clock signal RD_CLK S50 when the flip flops HF1, HF2, . . . , and HFn latch the read data S60. Such a maximum allowable setup time t7 in FIG. 7 is advantageously longer than the maximum allowable setup time t5 in the prior art of FIG. 4.

The reason for such an increased maximum allowable setup time t7 in FIG. 7 is that the output delay t3=t1+t2 is eliminated with the memory card system 200 of FIG. 5 with the read clock signal RD_CLK being generated and transmitted from the memory card 202 for clocking the host I/O circuit 208. Such an increased maximum allowable setup time t7 in FIG. 7 is advantageous for increasing the operating frequency of the memory card system 200 according to an aspect of the present invention.

In addition, the read clock signal RD_CLK from the read clock generator 222 is transferred to the host 202 substantially only during a read operation when read data is also being transferred to the host 202 in one embodiment of the present invention. The card connection unit 220 may determine the time duration for sending such read data and read clock signal RD_CLK from an estimation of the size of the read data to be sent to the host 202. Alternatively, the host 202 may send an acknowledge command back to the card connection unit 220 indicating when all of the desired read data has been received by the host 202.

FIG. 8 shows a flow-chart of steps performed by the memory card system 200 of FIG. 5 for a write operation. Referring to FIGS. 5 and 8, the host 202 sends a write command WR_CMD, a write clock signal WR_CLK, and write data to be written to the memory card 204 through the host connection unit 210 (step S242 of FIG. 8). To that end, the host 202 includes a write clock signal generator 223 for generating the write clock signal WR_CLK.

Further referring to FIGS. 5 and 8, the data flip flops CF1, CF2, . . . , and CFn of the card I/O circuit 218 latch such write data received at the card connection unit 220 in synchronism to the write clock signal WR_CLK received at the card connection unit 220 (step S244 of FIG. 8). In addition, the card controller 214 receives such latched write data from the card I/O circuit 218 and writes the latched write data into the memory unit 216 in synchronism with an internal clock signal generated within the card controller 214 (step S246 of FIG. 8).

FIG. 9 shows a memory card system 500 according to an alternative embodiment of the present invention. Elements having the same reference number in FIGS. 5 and 11 refer to elements having similar structure and/or function. The memory card system 500 of FIG. 9 has a memory card 502 with a memory unit 504 including a first read clock signal generator 505 and with a card controller 506 having a second read clock signal generator 507.

When the memory unit 504 is transferring read data to the card controller 506, the memory unit 504 also transfers a first read clock signal RD_CLK1 from the first read clock signal generator 505 to the card controller 506. Thus, the card controller 506 and the memory unit 504 of FIG. 9 operate similarly for any read operation as already described between the host 202 and the card 204, respectively, for FIG. 5.

Similarly, when the card controller 506 is transferring read data to the card connection unit 220, the card controller 506 also transfers a second read clock signal RD_CLK2 from the second read clock signal generator 507 to the card connection unit 220. Thus, the card connection unit 220 and the card controller 506 of FIG. 9 operate similarly for any read operation as already described between the host 202 and the card 204, respectively, for FIG. 5.

The foregoing is by way of example only and is not intended to be limiting. For example, any number of elements as illustrated and described herein is by way of example. The present invention is limited only as defined in the following claims and equivalents thereof. 

1. A memory card system, comprising: a host that issues a read command; and a memory card that upon receiving the read command sends read data to the host in synchronism with a read clock signal generated within the memory card.
 2. The memory card system of claim 1, wherein the memory card sends the read clock signal to the host, and wherein the host receives the read data in synchronism with the read clock signal.
 3. The memory card system of claim 2, wherein the host includes: at least one flip flop that latches in the read data from the memory card clocked with the read clock signal.
 4. The memory card system of claim 1, wherein the memory card includes: at least one flip flop that latches out the read data to the host clocked with the read clock signal.
 5. The memory card system of claim 1, wherein the host includes: a host data processor; and a host memory device having sequences of instructions stored thereon, wherein execution of the sequences of instructions by the host data processor causes the host data processor to perform the step of: sending the read command to the memory card.
 6. The memory card system of claim 1, wherein the memory card includes: a read clock signal generator that is controlled to generate the read clock signal when the memory card receives the read command.
 7. The memory card system of claim 6, wherein the memory card includes: a card data processor; and a card memory device having sequences of instructions stored thereon, wherein execution of the sequences of instructions by the card data processor causes the card data processor upon receiving the read command to perform the steps of: reading the read data from a memory unit of the memory card in synchronism with an internal clock signal of the memory card; controlling the read clock generator to generate the read clock signal to be sent to the host; and sending the read data and the read clock signal to the host.
 8. The memory card system of claim 1, wherein an allowable setup time for receiving the read data at the host is determined by a phase relationship between the read data and the read clock signal received at the host.
 9. The memory card system of claim 1, wherein the memory card includes: a memory unit that receives another read command issued from a card controller of the memory card; wherein the memory unit upon receiving the other read command provides the read data to the card controller in synchronism with another read clock signal generated within the memory unit.
 10. The memory card system of claim 9, wherein the memory unit includes: another read clock signal generator that is controlled to generate the other read clock signal when the memory unit receives the other read command.
 11. The memory card system of claim 9, wherein the memory unit is a flash memory.
 12. The memory card system of claim 1, wherein the host transfers a write command, write data, and a write clock signal to the memory card, and wherein the memory card receives the write data in synchronism with the write clock signal.
 13. A memory card system, comprising: a host that issues a read command; a memory card that provides read data upon receiving the read command; and means for receiving the read data at the host with an allowable setup time that is determined by a phase relationship between the read data and a read clock signal received at the host from the memory card.
 14. The memory card system of claim 13, wherein the memory card includes: a read clock signal generator that is controlled to generate the read clock signal when the memory card receives the read command.
 15. The memory card system of claim 13, wherein the means for receiving includes: at least one flip flop that latches in the read data from the memory card clocked with the read clock signal.
 16. The memory card system of claim 13, wherein the memory card includes: at least one flip flop that latches out the read data to the host clocked with the read clock signal.
 17. The memory card system of claim 13, wherein the memory card includes: a memory unit that provides the read data upon receiving another read command issued from a card controller of the memory card; and means for receiving the read data from the memory unit at the card controller with an allowable setup time that is determined upon a phase relationship between the read data and another read clock signal received at the card controller from the memory unit.
 18. The memory card system of claim 17, wherein the memory unit includes: another read clock signal generator that is controlled to generate the other read clock signal when the memory unit receives the other read command.
 19. The memory card system of claim 17, wherein the memory unit is a flash memory.
 20. A method of transferring data between a host and a memory card, comprising: issuing a read command from the host to the memory card; providing read data and a read clock signal by the memory card upon receiving the read command; and sending the read data from the memory card to the host in synchronism with the read clock signal.
 21. The method of claim 20, further comprising: reading, by a card controller of the memory card, the read data from a memory unit of the memory card in synchronism with an internal clock signal of the memory card.
 22. The method of claim 21, wherein the memory unit is a flash memory.
 23. The method of claim 21, further comprising: issuing another read command from the card controller to the memory unit; generating the read data and another read clock signal at the memory unit upon receiving the other read command; and sending the read data from the memory unit to the card controller in synchronism with the other read clock signal.
 24. The method of claim 23, further comprising: sending the other read clock signal from the memory unit to the card controller; and receiving the read data at the card controller in synchronism with the other read clock signal.
 25. The method of claim 20, further comprising: sending the read clock signal from the memory card to the host; and receiving the read data at the host in synchronism with the read clock signal.
 26. The method of claim 25, wherein an allowable setup time for receiving the read data at the memory card is determined by a phase relationship between the read data and the read clock signal received at the memory card.
 27. The method of claim 20, further comprising: sending to the memory unit from the card controller a write command, write data, and a write clock signal; and receiving by the memory unit the write data in synchronism with the write clock signal. 